“Internet of things (IoT) gateway” refers to a device which is an interface between an on-premise IoT device(s) and cloud. An IoT gateway collects data from one or more IoT devices and sends the collected data onto the cloud, e.g., for processing and analysis. The IoT gateway may include software to pre-process (e.g., filter) the collected data prior to sending the data onto the cloud. Often, the data is voluminous and the IoT gateway has limited hardware resources to pre-process the data, therefore, usually, there is performance or bottleneck issues at the IoT gateway. For example, the IoT gateway may consume more time, than expected, in pre-processing the collected data and/or sending the data onto the cloud. The performance issues may be analyzed by capturing or collecting software and/or hardware logs. A software log provides information on execution time of the software and a hardware log provides information on hardware utilization (e.g., central processing unit (CPU) utilization, memory consumed, etc.) of the IoT gateway. The software and hardware logs are collected separately.
Codes for collecting the logs are stored within the IoT gateway and consumes some resources (e.g., memory) of the IoT gateway. Further, detailed analysis of logs are required to determine relationship between the software and the hardware logs to identify processes within the software which cause the performance issues (e.g., consuming more memory or disk space, utilizing more CPU, taking more time to execute, etc.). Therefore, the logs analysis is a time consuming and an arduous task. As the logs analysis is time consuming and arduous task, usually, the logs analysis is performed reactively, e.g., when some performance issues are identified at the IoT gateway.